#include <stdio.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>

int main()
{
    int fd = open("myfile", O_WRONLY | O_CREAT, 0666);
    char *arr = "hello world\n";
    close(1);
    dup2(fd, 1);
    printf("%s", arr);
    return 0;
}

// int main()
// {
//     close(1);
//     int fd = open("myfile", O_WRONLY | O_CREAT, 0666);
//     char *arr = "hello world\n";
//     fprintf(stdout, arr);
//     // fflush(stdout);//可以在调用close之前，先刷新缓冲区。
//     fclose(stdout);
//     return 0;
// }

// int main()
// {
//     close(1);
//     int fd = open("myfile", O_WRONLY | O_CREAT, 0666);
//     char *arr = "hello world\n";
//     fprintf(stdout, arr);
//     fclose(stdout);
//     return 0;
// }

// int main()
// {
//     printf("hello printf\n");
//     fprintf(stdout, "hello fprintf\n");
//     const char *mag2 = "hello write\n";
//     write(1, mag2, strlen(mag2));
//     fork();
//     return 0;
// }

// int main()
// {
//     close(1);
//     int fd = open("myfile", O_WRONLY | O_CREAT, 0666);

//     const char *arr = "hello world\n";

//     fwrite(arr, strlen(arr), 1, stdout);

//     return 0;
// }

// int main()
// {
//     close(1);
//     umask(0);
//     int fd1 = open("myfile", O_WRONLY | O_CREAT, 0666);
//     char *duf = "hello world\n";

//     // printf("%s",duf);
//     // fflush(stdout);//更新流的用户空间缓冲数据
//     write(1, duf, strlen(duf));
//     return 0;
// }

// int main()
// {
//     close(0);
//     umask(0);
//     int fd1 = open("myfile", O_WRONLY | O_CREAT, 0666);

//     printf("fd1:%d\n", fd1);
//     return 0;
// }

// int main()
// {
//     umask(0);
//     int fd1 = open("myfile", O_WRONLY | O_CREAT, 0666);
//     int fd2 = open("myfile", O_WRONLY | O_CREAT, 0666);
//     int fd3 = open("myfile", O_WRONLY | O_CREAT, 0666);
//     int fd4 = open("myfile", O_WRONLY | O_CREAT, 0666);

//     printf("fd1:%d\n", fd1);
//     printf("fd2:%d\n", fd2);
//     printf("fd3:%d\n", fd3);
//     printf("fd4:%d\n", fd4);
//     return 0;
// }

// int main()
// {
//     umask(0);
//     int fd = open("myfile",O_WRONLY|O_CREAT,0666);
//     if(fd < 0)
//     {
//         perror("open");
//         return 1;
//     }
//     char* buf = "hello world\n";
//     write(fd,buf,strlen(buf));
//     close(fd);

//     return 0;
// }

// int main()
// {
//     char* m = "hello world\n";
//     fwrite(m,strlen(m),1,stdout);

//     return 0;
// }